一个web页面,其中有2个超链接,

login路由用于登录,通过响应头可以看出使用JWT TOKEN进行身份验证

解析一下,可以发现有密钥,负载部分运用了ROT13加密

ROT加解密在线工具

rot13.com

解密后admin为false,现在要想办法修改admin为true,但是没有密钥

回头看/adminNames路由,会下载一个文件,里面是一个github仓库的相关信息,访问该仓库发现是一种允许一些用户名登录其服务器的项目

观察其响应体,存在任意文件下载

查阅资料了解到,nodejs的一些环境变量会存储在根目录的.env文件中,下载下来查看key

这里猜测用了dotenv模块,作用就是从.env文件中读取键值对作为系统变量

JWT_SECRET=Th1sSECr3TMu5TN0Tb3L43KEDEv3RRRRRR!!1

拿到key后就是用rot13加密后的payload伪造JWT,访问/admin路由(扫出来的)

注意name要从github仓库里用户名出,有些是无效的